//失败
#include "stand.h"

extern int a[];

void insertSort (int a[],int ac) 
{
	int i,j;

	for (i = 1; i< ac; i++) {
		for (j=0; j<i; j++) { //j< i; i=3; a[0]<a[3],a[0]<a[2],a[0]<a[1]
			if (a[i] < a[j]) {
				swap(a+j,a+i);
			}
		}
	}
		
}




void getArray(int a[],int ac)
{
	//这里将一个整数组，排序为前一半有序和后一半有序。
	int check=ac/2;
	if (ac/2 == 0)  check=ac/2+1;
	//保证第一次，读到的数据大于等于完整数组的一半。


	int i;
	for (i=0;;i+=check) {
		if (ac -i < check) {
			insertSort(a+i,ac - check);
			break;
		}
		insertSort(a+i,check);
	}
}



int main()
{
	int ac = ARRLEN(a,int);
	getArray(a,ac);
	print_arr(a,ac);
	//第一步，工作已经完毕
	//第二步，准备一接个受排序好的数组。
	int b[10]= {0};
	
	int i;
	for (i=0;i<ac/2;i++) {
//		printf("%d  %d \t %d   %d\n",i,i+ac/2,a[i],a[i+ac/2]);
		if (a[i] > a[i+ac/2]) {
			b[i*2] = a[i+ac/2];
			b[i*2+1] = a[i];
		}else {
			b[i*2] = a[i];
			b[i*2+1] = a[i+ac/2];
		}
		print_arr(b,ac);
	}

//	print_arr(b,ac);

}
